package com.neusoft.SPNursingHome.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.neusoft.SPNursingHome.po.CareItem;
import com.neusoft.SPNursingHome.po.ResponseBean;
import com.neusoft.SPNursingHome.service.CareItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/CareItemController")
public class CareItemController {
    @Autowired
    private CareItemService careItemService;

    // 显示护理项目列表
    @GetMapping("/listCareItem")
    public ResponseBean<List<CareItem>> listCareItem() {
        return careItemService.listCareItem();
    }

//    // 根据护理项目编码，名称，状态模糊查询护理项目
//    @GetMapping("/listCareItemByConditions")
//    public ResponseBean<List<CareItem>> searchCareItem(String careItemCode, String careItemName, Boolean careItemStatus) {
//        return careItemService.listCareItemByConditions(careItemCode, careItemName, careItemStatus);
//    }

    // 根据护理项目编码，名称，状态模糊查询护理项目
    @GetMapping("/listCareItemByConditions")
    public ResponseBean<IPage<CareItem>> searchCareItem(String careItemCode, String careItemName, Boolean careItemStatus, @RequestParam(defaultValue = "1") long page,
                                                        @RequestParam(defaultValue = "10") long size) {
        return careItemService.listCareItemByConditions(careItemCode, careItemName, careItemStatus, page, size);
    }

    // 修改护理项目信息
    @PostMapping("/updateCareItem")
    public ResponseBean<Integer> updateCareItem(@RequestBody CareItem careItem) {
        // 参数校验
        if (careItem.getCareItemCode() == null || careItem.getCareItemCode().trim().isEmpty() ||
                careItem.getCareItemName() == null || careItem.getCareItemName().trim().isEmpty() ||
                careItem.getCareItemStatus() == null ||
                careItem.getCareItemPrice() == null ||
                careItem.getCareItemCycle() == null || careItem.getCareItemCycle().trim().isEmpty() ||
                careItem.getCareItemCount() == null) {
            return new ResponseBean<>(500, "除描述外信息不能为空");
        }
        return careItemService.updateCareItem(careItem);
    }

    // 添加护理项目
    @PostMapping("/addCareItem")
    public ResponseBean<Integer> addCareItem(@RequestBody CareItem careItem) {
        // 参数校验
        if (careItem.getCareItemCode() == null || careItem.getCareItemCode().trim().isEmpty() ||
                careItem.getCareItemName() == null || careItem.getCareItemName().trim().isEmpty() ||
                careItem.getCareItemStatus() == null ||
                careItem.getCareItemPrice() == null ||
                careItem.getCareItemCycle() == null || careItem.getCareItemCycle().trim().isEmpty() ||
                careItem.getCareItemCount() == null) {
            return new ResponseBean<>(500, "除描述外信息不能为空");
        }
        // 调用服务层方法
        return careItemService.addCareItem(careItem);
    }

    // 逻辑删除护理项目
    @PostMapping("/deleteCareItem")
    public ResponseBean<Integer> deleteCareItem(Integer careItemId) {
        // 参数校验
        if (careItemId == null) {
            return new ResponseBean<>(500, "护理项目ID不能为空");
        }
        return careItemService.deleteCareItem(careItemId);
    }

    // 查询所有启用状态的护理项目
    @GetMapping("/listActiveCareItem")
    public ResponseBean<List<CareItem>> listActiveCareItem( ) {
        return careItemService.listActiveCareItem();
    }
}
